import router from "../router"
import $bus from "../utils/bus"
//全局前置钩子

//只要进入页面之前都会调用

//返回值:
//1.false 阻止路由的进入

//2.返回一个路径对象,终止进入to的路径,转而进入return的路径\

//需求:用户未登入的情况下,不允许访问其它页面(判断本地是否有token,如果有就放行,如果没有就重新跳转到登入页)

//如果登入了,就可以访问其它页面

router.beforeEach((to, from) => {
    // console.log("each===to", to)
    // console.log("each===from", from)

    let token = sessionStorage.getItem('qf-token')

    if (!token) {
        //没有token,说明用户没有登入
        if (to.path !== '/login') {
            //没登入,访问的还不是登入页,那么重新给它跳转到登入页
            return {
                path: "/login"
            }
        }
    }
})



//全局后置钩子
//路由元信息,每个路由都有一个meta属性,可以给路由配置添加一些额外的标识和属性
router.afterEach((to, from) => {
    // console.log('after-to===', to)
    // console.log('after-from===',from)

    // 通过to.matched属性,来获取面包屑需要的数据,要把数据传递给app组件中的data
    $bus.$emit('breadChange', to.matched)
})

//全局解析守卫
router.beforeResolve((to, from) => {
    // console.log('resolve-to',to)
    // console.log('resolve-from',from)
})